1   package t5.webresources.services;
2   
3   import org.apache.tapestry5.SymbolConstants;
4   import org.apache.tapestry5.ioc.MappedConfiguration;
5   import org.apache.tapestry5.ioc.OrderedConfiguration;
6   import org.apache.tapestry5.ioc.annotations.Contribute;
7   import org.apache.tapestry5.ioc.annotations.ImportModule;
8   import org.apache.tapestry5.ioc.services.ApplicationDefaults;
9   import org.apache.tapestry5.ioc.services.SymbolProvider;
10  import org.apache.tapestry5.services.Core;
11  import org.apache.tapestry5.services.compatibility.Compatibility;
12  import org.apache.tapestry5.services.compatibility.Trait;
13  import org.apache.tapestry5.services.javascript.JavaScriptStack;
14  import org.apache.tapestry5.services.javascript.JavaScriptAggregationStrategy;
15  import org.apache.tapestry5.services.javascript.StackExtension;
16  import org.apache.tapestry5.services.javascript.StackExtensionType;
17  import org.apache.tapestry5.webresources.modules.WebResourcesModule;
18  
19  @ImportModule(WebResourcesModule.class)
20  public class AppModule
21  {
22      @Contribute(Compatibility.class)
23      public static void disableOldStuff(MappedConfiguration<Trait, Boolean> configuration)
24      {
25          configuration.add(Trait.INITIALIZERS, false);
26          configuration.add(Trait.SCRIPTACULOUS, false);
27      }
28  
29      @Contribute(SymbolProvider.class)
30      @ApplicationDefaults
31      public static void setupEnvironment(MappedConfiguration<String, Object> configuration)
32      {
33          configuration.add(SymbolConstants.JAVASCRIPT_INFRASTRUCTURE_PROVIDER, "jquery");
34          configuration.add(SymbolConstants.MINIFICATION_ENABLED, true);
35          configuration.add(SymbolConstants.BOOTSTRAP_ROOT, "context:bootstrap");
36      }
37  
38      @Contribute(JavaScriptStack.class)
39      @Core
40      public static void overrideBootstrapCSS(OrderedConfiguration<StackExtension> configuration)
41      {
42          // configuration.add("ForTestingOnly", StackExtension.javascriptAggregation(JavaScriptAggregationStrategy.DO_NOTHING));
43  
44          configuration.override("bootstrap.css",
45                  new StackExtension(StackExtensionType.STYLESHEET, "context:bootstrap/less/bootstrap.less"), "before:tapestry.css");
46      }
47  }